﻿// ====================== 公共方法 ======================
// 1、去字符串前后的空格
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, "");
};

// ====================== 初始化执行内容 ======================
// 初始化设置
$(function() {
	// window.winAlert = window.alert;
	// window.alert = function(msg, optType, title, callback) {
	// jAlert(msg, title, optType, callback);
	// };
});


/**
 * 封装ajax： 1、自动完成按钮的隐藏和显示 2、loading 内容的显示 3、自动处理错误
 * 
 * @param ajaxParam:ajax的原始参数
 * @param btnObj：如果要设置按钮无效，这个参数为#name
 * @param isShowLoading：空或1表式开启，0表示关闭
 * @param messageDisplayType：消息的显示方式
 * 
 */
function ajaxDo(params, btnObjSelector) {
	// 0.默认参数
	var settings = {
			datatype : "json",
			type : "POST",
			data : {},
			cache : false,
			async : true,
		};
	// 1.禁用按钮
	disabledEle(btnObjSelector);
	// 2.设置参数
	jQuery.extend(settings, params);
	$.ajax({
		url : settings.url,
		datatype : settings.datatype,
		type : settings.type,
		data : settings.data,
		async : settings.async,
		cache : settings.cache,
		success : function(data, textStatus) {
			enabledEle(btnObjSelector);
			if (isUnEmpty(settings.success)) {
				settings.success(data, textStatus);
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			enabledEle([ btnObjSelector ]);
			if (isUnEmpty(settings.error)) {
				settings.error(XMLHttpRequest, textStatus, errorThrown);
			} else {
				//displayMessage(textStatus, messageDisplayType, 2);
			}
		}
		
	});
}
//====================== 分页相关内容 ======================
//显示载入条
function showLoading(ind) {
	hidePage(ind);
	hideNoResultMsg(ind);
	_objShow("div[name='_loading']",ind);
}

//隐藏载入条
function hideLoading(ind) {
	_objHide("div[name='_loading']",ind);
}

//显示无结果的内容
function showNoResultMsg(ind) {
	_objShow("div[name='noResultMsgBox']",ind);
}

//隐藏无结果的内容
function hideNoResultMsg(ind) {
	_objHide("div[name='noResultMsgBox']",ind);
}

//显示无结果的内容
function showPage(ind) {
	_objShow("div[name='Pagination']",ind);
}

//显示无结果的内容
function hidePage(ind) {
	_objHide("div[name='Pagination']",ind);
}

//显示多个对像中的一个
function _objShow(selector,ind) {
	ind=ind?ind:0;
	$($(selector).get(ind)).show();
}

//隐藏多个对像中的一个
function _objHide(selector,ind) {
	ind=ind?ind:0;
	$($(selector).get(ind)).hide();
}

//结果提示内容显示
function ResultMsgInit(TC, ind) {
	if (TC == undefined || TC <= 0) {
		ind = ind ? ind : 0;
		hidePage(ind);
		showNoResultMsg(ind);
		hideLoading(ind);
	} else {
		ind = ind ? ind : 0;
		showPage(ind);
		hideNoResultMsg(ind);
		hideLoading(ind);
	}
}

/**
 * 初始化分页信息
 * 
 * @param selector 分页容器jquery选择器
 * @param TC 总记录数
 * @param pageNo 当前页号 如果不传默认为0
 * @param callback 回调函数
 * @param params[linkTo\rendererName\displayEntries\pageNo] 所有附加参数
 * @returns
 */
function InitPageLabel(selector, TC,params, callback) {
	var PD = getPageParamData(selector);
	var pageSize = PD['page.pageSize'];
	pageSize ? pageSize : pageSize = 10;
	if(typeof params!=undefined ){
		if(typeof params.displayEntries==undefined ){
			params.displayEntries=5;
		}
		if(typeof params.linkTo==undefined ){
			params.linkTo = 'javascript:void(0)';
		}
		if(typeof params.rendererName==undefined ){
			params.rendererName = 'defaultRenderer';
		}
		var totalPage = Math.ceil(TC / pageSize);
		if (typeof params.pageNo == undefined || params.pageNo <= 0) {
			params.pageNo = 0;
		} else if (pageNo > (totalPage - 1)) {
			params.pageNo = totalPage;
		}
	}else{
		params.displayEntries=5;
		params.linkTo = 'javascript:void(0)';
		params.pageNo = 0;
		params.rendererName = "defaultRenderer";//verticalRenderer
	}
	
	if (TC > 0) {
		$(selector).show();
	} else {
		$(selector).hide();
	}
	PD['page.total'] = TC;
	$(selector).pagination(TC, {
		num_edge_entries : 1,
		num_display_entries : params.displayEntries,
		link_to : params.linkTo,
		callback : callback,
		items_per_page : pageSize,
		current_page : pageNo,
		next_text : "下一页",
		prev_text : "上一页",
		renderer:params.rendererName
	});
}

//得到queryJson里指定Key的值
function getPageParamData(selector) {
	selector=selector?selector:"#Pagination";
	return $(selector).data("PD");
}
//设置queryJson里指定Key的值
function setPageParamData(selector, data) {
	selector=selector?selector:"#Pagination";
	return $(selector).data("PD", data);
}
//参数数据的更新    pageNo:从0开始  PD:参数数据
function updatePageParamData(K,V,selector) {
	selector=selector?selector:"#Pagination";
	var data=getPageParamData(selector);
	data[K]=V;
	setPageParamData(selector,data);
}



